package com.ms.service.inter;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ms.entity.Manager;
import com.ms.utils.SimpleTokenUtils;

import java.util.List;
import java.util.Map;

/**
 * Service 接口，继承 IService 获得更多通用业务方法
 */
public interface ManagerService extends IService<Manager> {
    // 可在此定义自定义业务方法（如根据条件查询、批量操作等）
    // 示例：查询所有主管理员
    List<Manager> getMainManagers();

    // 获取所有管理员
    List<Manager> findAll();

    // 根据账号查询管理员信息
    Manager getManagerByAccount(String account);


    // 根据管理员ID修改管理员在线状态
    boolean updateManagerOnlineStatus(Integer Id, boolean isUsing);

    // 创建管理员账号
    boolean createManager(Manager manager);

    /**
     * 管理员登录
     */
    Map<String, Object> login(String account, String password, String ip);

    /**
     * 管理员注册（仅主管理员可操作）
     */
    boolean register(Manager manager, Integer creatorId);

    /**
     * 修改管理员状态
     */
    boolean changeStatus(Integer managerId, Integer status, Integer operatorId);

    /**
     * 修改密码
     */
    boolean changePassword(Integer managerId, String oldPassword, String newPassword);

    /**
     * 根据是否为主管理员获取管理员列表
     */
    List<Manager> getManagersByIsMain(Boolean isMain);

    /**
     * 重置密码（主管理员操作）
     */
    boolean resetPassword(Integer managerId, Integer operatorId);

    /**
     * 获取管理员信息（排除密码）
     */
    Manager getManagerInfo(Integer managerId);
    /**
     * 主管理员更新普通管理员信息
     * @param manager 管理员信息
     * @return 更新结果
     */
    boolean updateManagerInfo(Manager manager);
}